/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.input;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.client.om.IClientConsultation;
import fr.generali.accueilclient.utils.stringbuilder.StringBuilderUtils;
import fr.generali.refservcommuns.rce.consultpersonnecontact.ArrayOfString;
import fr.generali.refservcommuns.rce.consultpersonnecontact.ConsulterPersonneContact;

/**
 * Transforme un {@link IClientConsultation} en {@link ConsulterPersonneContact}
 * 
 * @author selrhazala
 */
@Component("clientConsultation2ConsulterPersonneContactConverter")
public class ClientConsultation2ConsulterPersonneContactConverter extends VisibiliteBuilder implements
    Converter<IClientConsultation, ConsulterPersonneContact> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER =
                    LoggerFactory.getLogger(ClientConsultation2ConsulterPersonneContactConverter.class);
    
    /**
     * {@inheritDoc}
     */
    public ConsulterPersonneContact convert(IClientConsultation input) {
        LOGGER.info("assemble");
        ConsulterPersonneContact consulterPersonneContact = new ConsulterPersonneContact();
        ArrayOfString listeIdentifiants = new ArrayOfString();
        listeIdentifiants.getString().add(input.getNumeroClient());
        consulterPersonneContact.setListeIDs(listeIdentifiants);

        // Visibilité
        consulterPersonneContact.setDtoContexteVisibilite(buildVisibilite(input.getUserInfo(), input
                        .getListeCodeIntermediaire()));
        
        consulterPersonneContact.setTopHistorique(StringBuilderUtils.NON);

        return consulterPersonneContact;
    }
}
